package lock;

import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantLock;

/**
 * @author fei
 * @date 2023/1/6 14:56
 * @description 悲观锁 和 乐观锁伪代码
 */
public class Test1 {

    // ============= 悲观锁的调用方式
    public synchronized void m1(){
        // 加锁后的业务逻辑...
    }

    // 保证多个线程使用同一个 lock 对象的前提下
    ReentrantLock lock = new ReentrantLock();
    public void m2(){
        lock.lock();
        try {
            // 操作同步资源
        } finally {
            lock.unlock();
        }
    }


    public static void main(String[] args) {
        // 保证多个线程使用的是同一个 AtomicInteger
        AtomicInteger atomicInteger = new AtomicInteger();
        atomicInteger.incrementAndGet();
    }
}
